The disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the United States Patent and Trademark Office patent file or records, once a patent is issued on this application, but otherwise reserves all copyright rights whatsoever.
1. Field of the Invention
Aspects of the present invention relate to certain machine vision techniques and certain automated processes for manipulating physical objects.
2. Description of Background
It is difficult to precisely determine the orientation within three degrees of movement of certain three-dimensional objects having surface features which provide low contrast when an image is taken thereof. For example, golf ball manufacturers have attempted to produce automated systems that determine the orientations of randomly oriented golf balls, so that during the manufacturing process the golf balls can be re-orientated to all have the same orientation. The balls are re-orientated so markings can be uniformly placed at the same location on each ball. Currently, this task is performed manually. Multiple human operators, stationed at various machines through a given plant, re-orient the balls by hand.
There is a need for an automated system which can automatically identify the particular orientation of a given golf ball within three-degrees of freedom, and can produce a resulting signal to control a repositioning of the given golf ball. Such a system would provide substantial advantages, including reducing the costs of and speeding up the manufacturing process.
The patterns of dimples of a given golf ball may vary in certain respects. For example, Titleist(copyright) golf balls have dimples throughout their surface, with one dimple centered at the north pole of the ball and another dimple centered at its south pole. Other dimples, not at the north and south poles, are typically surrounded by six equally spaced dimples. The top hemisphere mirrors the lower hemisphere of the ball. In addition, the upper hemisphere and the lower hemisphere each have a given pattern, which repeats itself. Other types of golf balls may not have the same types of patterns.
Because of the lack of uniformity in the surface pattern, many professional golfers will position a golf ball with a certain orientation on the tee before each drive. For this reason, for certain types of professional balls, golf ball manufacturers will consistently place printed matter (a logo, characters, and/or graphics) at a certain location on the surface of the golf ball to denote its orientation.
Attempts have been made to identify the orientation of a golf ball by spinning each ball in front of a line scan camera. The resulting sinusoidal waveform is analyzed in an attempt to determine the orientation. The system tries to identify the equator of the ball, but encounters problems due to the poor contrast produced by the surface features of the ball. Such poor contrast may be due to, for example, the white-on-white characteristics of the ball and due to the fact the typography of the ball changes only slightly.
The present invention is provided to improve upon automated techniques for ascertaining the orientation of a three-dimensional object along three degrees of freedom. A system may employ such techniques in order to reorient the object in automated fashion, for example, using a repositioning system. Accordingly, in accordance with at least one aspect of the invention, a method may be provided for determining the three-dimensional orientation of a given object. The object may comprise a mass-produced object which is inspected before packaging. Before the ball can be compared to a model, for inspection, its orientation must be ascertained. The three-dimensional orientation may be determined in order to allow the placement of a marker at a predetermined position on the outer surface of an object. By way of example, the object may comprise a professional-class golf ball. A model representation of a reference object is obtained. The model representation may comprise information concerning a reference orientation of the reference object and information representing patterns of visible shapes in relation to the reference orientation. In a specific embodiment, the visible shapes may comprise dimples of a golf ball. The reference orientation may comprise the north or south pole of a golf ball.
A run-time image of the given object being inspected is obtained. From the run-time image, shape information is obtained for certain identified shapes collectively forming a subset of the visible shapes on the given object. The shape information may include, for a given identified shape, a location along three dimensions of the given identified shape as well as the size of the given identified shape. In the case of dimples on a golf ball, the location of a given dimple may be identified with the use of a vector originating at the center of the golf ball and intersecting the center of the dimple. The size of the dimple may be reflected by the magnitude of the vector representing the dimple""s diameter. The shape information may be placed into vectors of a run-time model. The shape information is matched to a number of incremental poses of the model representation, varying along three-degrees of freedom. In matching the shape information to the poses of the model representation, both coarse matching and fine matching may be performed.
The coarse matching of the shape information may comprise matching that information to a number of candidate matching poses of the model representation from among a larger number of incremental poses of the model representation varying along three degrees of freedom. Specifically, the coarse matching may comprise: (i) comparing the shapes within the subset with nearby pose shapes from poses of the model representation; (ii) for the subset of shapes, generating scores indicative of respective distances between the shapes and the nearby pose shapes; and (iii) comparing the scores among poses to determine a closest of the poses which comprise the candidate matching poses.
Fine matching may involve fine matching the shape information to determine a precise matching pose. Specifically, the fine matching may comprise comparing the shapes within the subset with corresponding pose shapes of a given candidate matching pose to determine an error value, and adjusting the given candidate matching pose along three degrees of freedom to reduce the error value to below a predetermined level.